#!/usr/bin/env bash
set -e

wait_wg() {
  local c="$1"
  for i in {1..20}; do
    if docker exec "$c" ip link show awg0 >/dev/null 2>&1; then
      return 0
    fi
    sleep 1
  done
  return 1
}

docker events --filter event=start --format '{{.Actor.Attributes.name}}' | while read name; do
  if [[ "$name" == "amnezia-awg2" || "$name" == "amnezia-awg" ]]; then
    echo "[watcher] container started: $name, waiting wg..."
    if wait_wg "$name"; then
      echo "[watcher] wg ready, applying limits"
      WG_IF=awg0 /opt/amnezia/limit_peers.sh
    else
      echo "[watcher] wg not appeared, skip"
    fi
  fi
done
